import java.io.*;
import java.net.Socket;
import java.util.Scanner;

public class TcpClient2 {

    // 服务端IP或域名
    private static final String SERVER_HOST = "localhost";

    // 服务端Socket 进程的端口号
    private static final int SERVER_PORT = 8888;

    public static void main(String[] args) throws IOException {
        // 这里和案例一的 TcpClient 大相径庭了
        // 准备要发送的数据， 从键盘获取发送内容
        Scanner scanner = new Scanner(System.in);

        while(true){
            System.out.println("————————————————————————————————————————————————————————————————————————————");
            System.out.println("请输入要展示的目录：");
            // 设定了每一行作为一条报文发送
            String request = scanner.nextLine();
            // 下面进行建立连接和 发送的任务
            Socket socket = new Socket(SERVER_HOST, SERVER_PORT);
            OutputStream os = socket.getOutputStream();
            PrintWriter pw = new PrintWriter(new OutputStreamWriter(os, "UTF-8"));
            // 发送数据
            pw.println(request);
            pw.flush();

            // 发送了之后就是等待服务器的响应了
            System.out.println("接收到服务端响应：");
            InputStream is = socket.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(is,"UTF-8"));
            String line;
            // 一直读取到流结束： TCP基于流的数据传输，一定要服务端关闭Socket输出流才表示客户端接收的IO输入结束
            while((line = br.readLine()) != null){
                System.out.println(line);
            }
            // 9. 双方关闭连接，  客户端关闭socket连接
            socket.close();
        }
    }

}
